home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9703 / 000067_owner-urn-ietf _Fri Mar 28 02:52:45 1997.msg < prev    next >
Internet Message Format  |  1997-04-01  |  12KB

  1. Received: (from daemon@localhost)
  2.     by services.bunyip.com (8.8.5/8.8.5) id CAA11236
  3.     for urn-ietf-out; Fri, 28 Mar 1997 02:52:45 -0500 (EST)
  4. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1])
  5.     by services.bunyip.com (8.8.5/8.8.5) with SMTP id CAA11229
  6.     for <urn-ietf@services.bunyip.com>; Fri, 28 Mar 1997 02:52:40 -0500 (EST)
  7. Received: from www44.inria.fr by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  8.         id AA14008  (mail destined for urn-ietf@services.bunyip.com); Fri, 28 Mar 97 02:52:36 -0500
  9. Received: by www44.inria.fr (8.8.5/8.6.12) id IAA19844; Fri, 28 Mar 1997 08:52:32 +0100 (MET)
  10. To: urn-ietf@bunyip.com
  11. Path: usenet
  12. From: Dan Connolly <connolly@w3.org>
  13. Newsgroups: w3c.urn
  14. Subject: Re: [URN] resend of draft-urn-resolution-services-01.txt
  15. Date: Fri, 28 Mar 1997 01:52:21 -0600
  16. Organization: World Wide Web Consortium
  17. Lines: 337
  18. Message-Id: <333B78B5.387B2E4B@w3.org>
  19. References: <1997Mar27.000820.11467@sophia.inria.fr>
  20. Nntp-Posting-Host: beach.w3.org
  21. Mime-Version: 1.0
  22. Content-Type: text/plain; charset=us-ascii
  23. Content-Transfer-Encoding: 7bit
  24. X-Mailer: Mozilla 3.01 (X11; I; Linux 2.0.27 i586)
  25. To: Michael Mealling <michaelm@rwhois.net>
  26. Sender: owner-urn-ietf@Bunyip.Com
  27. Precedence: bulk
  28. Reply-To: Dan Connolly <connolly@w3.org>
  29. Errors-To: owner-urn-ietf@Bunyip.Com
  30.  
  31. Short version:
  32.     (1) I suggest link types be integrated into this
  33.     design and
  34.     (2) as a result, I think that URLs and URNs can
  35.     be used interchangeably
  36.     (3) I think N2C needs another parameter to
  37.     specify the schema of the URC.
  38.  
  39. Details:
  40.  
  41. Michael Mealling wrote:
  42. > Abstract
  43. > ... We might ask
  44. > for a list of other identifiers that are aliases for the original URI, a
  45. > bibliographic description of the resource the URI denotes, etc.
  46.  
  47. I suggest you word that more strongly; perhaps:
  48.  
  49.     Experience suggests that the following operations
  50.     should be supported by the network infrastructure,
  51.     in addition to retrieval:
  52.     
  53.         * requesting one or more URIs which
  54.         are aliases of a given URI, or more generally:
  55.         which URIs are linked to a given URI
  56.  
  57.         * requesting bibliographic or other
  58.         descriptions of a resource (aka "metadata")
  59.  
  60. And cite reports on that experience. (altavista's link:
  61. service, PICS labels, yahoo, Engelbart's backlink
  62. requirement, etc.) Hmm... I see that
  63. experience is cited in the intro. Good.
  64.  
  65. > Because of
  66. > the diverse nature of resources on the network, it may be difficult (or
  67. > impossible) to offer all those operations, therefore a means of indicating
  68. > what services are and are not supported by a given resolver must be
  69. > specified.
  70.  
  71. The argument is missing a premise: that an indication
  72. of the available services is needed by the clients.
  73. You make that point later (based on experience), but without
  74. it here, the conclusion after the "therefore" doesn't follow.
  75.  
  76.  
  77. > This memo gives an initial set of those operations, and the
  78. > requirements that must be met when those operations are encoded in a
  79. > protocol.
  80.  
  81. "intial set" gives me the willies. Do you mean to imply
  82. that you'll specify the rest of the list some day? If so,
  83. say so.
  84.  
  85. Are the names of these operations expected to be used
  86. literally in extensible fields in protocols?
  87. If so, is this namespace going to be managed in perpetuity?
  88. By IANA?
  89.  
  90. My intuition says that we're after a fiarly small set
  91. of primitives that doesn't need to be expanded: we don't
  92. have to cover the needs of every application-level semantic;
  93. just the distinctions that are critical in the name service.
  94.  
  95. > Also, in subsequent conversations it became obvious that, in
  96. > most cases, some of the operations were inappropriate or difficult for
  97. > certain identifiers. For example, ISSNs identify books or magazines that are
  98. > serial in nature. An operation to return the resource for an ISSN pointing
  99. > to "Time" magazine would result in dumping hundreds of thousands of pages of
  100. > "Time" onto a user's machine. This does not seem like a reasonable thing to
  101. > do in the normal case.
  102.  
  103. So... don't do that. :-)
  104.  
  105. Seriously: why do we have to give the machine any extra
  106. information to prevent it from dereferencing the Time
  107. magazine URI? Is there some scenario when the machine
  108. might attempt to do this?
  109.  
  110. I think I'm missing something. Point me to the relavent
  111. reading materials if you would, please.
  112.  
  113.  
  114. > The Problem
  115. > The problem, stated simply, was one of a client needing to convey to a
  116. > service some idea of the desired operation on a URI that the client is
  117. > currently talking about.
  118.  
  119. Hmm... I don't understand how normal protocol "opcodes"
  120. or "verbs" or "methods" don't suffice for this. But I'll
  121. keep reading...
  122.  
  123. > The problem was also that the server needed to
  124. > convey to a client which network entity could perform which of the
  125. > operations that were allowed for that particular URI.
  126.  
  127. This I agree with: some "preview" information is useful
  128. to save round-trips in protocols.
  129.  
  130.  
  131. > Any specification of a member of this set of operations MUST contain at
  132. > least the following pieces of information with respect to its operands, its
  133. > algorithm and its output.
  134. >    * 2.1 Operands
  135.  
  136. Hmm... the URN WG needs its own interface definition language?
  137.  
  138. Hang on: the header of this document says it's intended
  139. to be standards track, not informational. But this
  140. is an abstact API design, not a wire protocol.
  141. I didn't see that in the charter for this group.
  142. Oh well...
  143.  
  144. While the number and types of the operands is good stuff,
  145. I think some of the specification of the operations is
  146. missing, especially the relationship between the operations.
  147. For example: is N2L expected to be functional? is L2N
  148. expected to be its inverse? (details below...)
  149.  
  150.  
  151.  
  152. > 4.1 N2L (URN to URL)
  153. ...
  154. > This operation is used to map a single URN to a single URL.
  155.  
  156. In effect, it defines a relation
  157.     N2L <: URN x URL
  158. (where x means cross-product, and <: means subset)
  159.  
  160. This is where my point about typed links comes in: a
  161. "link type" is exactly a two-place relations between URIs.
  162.  
  163. If an N2L operation on cid:23l4kj2lk234 yields ftp://...,
  164. that has the same semantics as:
  165.  
  166.     <link rel="N2L" href="ftp://...">
  167.  
  168. when found inside cid:23l4kj2lk234 (assuming, in this
  169. case, that it's an HTML document.)
  170.  
  171. So I would define the N2L operation as:
  172.     Given a URI N, Return some URI L such that there is a
  173.     link from N to L of type "N2L".
  174.  
  175. Note that N and L are both URIs. Hence my second point:
  176. the distinction between URNs and URLs isn't necessary.
  177.  
  178.  
  179. >  The algorithm
  180. > for this mapping is dependent on the URN namespace.
  181.  
  182. What does that mean?
  183.  
  184. > 4.2 N2Ls (URN to URLs)
  185. > This operation is used to map a single URN to 0 or more URLs.
  186.  
  187.  
  188. This one becomes:
  189.     Given a URI N, Return a set of URIs L[i] such that there
  190.     is a link from N to L[i] of type "N2L" for each i.
  191.  
  192. Hmm.... Is this the same link type or not?
  193.  
  194. i.e. is the N2L relation a funciton? i.e. given a URI N,
  195. is it OK if different services return different results
  196. for N2L(N)? If N2L is expected to be a function, then
  197. the N2L semantics are different:
  198.  
  199.     Given a URI N, Return *the* URI L such that there is a
  200.     link from N to L of type "N2L".
  201.  
  202. If N2L is functional, then N2Ls needs a distinct link type
  203. if it's to ever return more than one URI:
  204.  
  205.     Given a URI N, Return a set of URIs L[i] such that there
  206.     is a link from N to L[i] of type "N2Ls" for each i.
  207.  
  208. > All URIs shall be encoded according to the URI specification [6].
  209.  
  210. I can't find reference 6. I'm terribly curious to know which
  211. document you're citing for URI syntax.
  212.  
  213.  
  214. > 4.3 N2R (URN to Resource)
  215.  
  216. > This operation is used to return a single instance of the resource that is
  217. > named by the URN.
  218.  
  219. This is HTTP GET (and ftp RETR, and the analagous operation
  220. in WAIS and ...). It has the same semantics, even if you use
  221. a different mechanism. I suggest you use "GET" in place
  222. of "N2R". But it doesn't matter too much.
  223.  
  224.  
  225. > 4.4 N2Rs (URN to Resources)
  226.  
  227. An interesting twist on GET. Cool.
  228.  
  229. > 4.5 N2C (URN to URC)
  230. ...
  231. > URCs (Uniform Resource Characteristics) are descriptions of other resources.
  232. > This request allows the client to obtain a description of the resource
  233. > identified by a URN, as opposed to the resource itself or simply the
  234. > resources URLs.
  235.  
  236. FYI, the PICS spec gives an example of this operation:
  237.     http://www.w3.org/pub/WWW/PICS/labels.html#Requesting
  238.  
  239. It has another parameter though: the metadata schema
  240. that the URCs should conform to.
  241.  
  242. Hmm... I'll have to look closely at THTTP to see if
  243. it's gratuitiously different from PICS.
  244.  
  245.  
  246. > 4.6 N2Ns (URN to URNs)
  247.  
  248. > While URNs are supposed to identify one and only one resource, that does not
  249. > mean that a resource may have one and only one URN. For example, consider a
  250. > resource that has something like "current-weather-map" for one URN and
  251. > "weather-map-for-datetime-x" for another URN. The N2Ns service request lets
  252. > the client obtain lists of URNs that are believed equivalent at the time of
  253. > the request.
  254.  
  255. Hang on: the relationship between current-weather-map
  256. and weather-map-for-datetime-x isn't an equivalence relation.
  257. Well... if it is, that's a misleading example.
  258.  
  259. The relationship you're talking about seems to be
  260. the generic/specific relationship, which is VERY useful,
  261. along with part/whole and a few others.
  262.  
  263. In terms of link types, I would describe this as:
  264.  
  265.     Given a URI N, return a set of URIs M[i] such
  266.     that there is a link from N to M[i] of type
  267.     "S2G" for each i.
  268.  
  269. where the S2G is specified to be transitive.
  270.  
  271. This seems distinct from the equivalence relationship:
  272.  
  273.     Given a URI N, return a set of URIs M[i] such
  274.     that there is a link from N to M[i] of type
  275.     "EQV" for each i.
  276.  
  277. > As the weathermap example shows, some of the equivalences will
  278. > be transitory, so the the server should convey the length of time for which
  279. > the mapping is valid.
  280.  
  281. That's the case for all metadata, no?
  282.  
  283. >  The result shall
  284. > be encoded in a text/uri-list IMT.
  285.  
  286. s/shall/should/, no?
  287.  
  288.  
  289. > 4.7 L2Ns (URL to URNs)
  290.  
  291. > This operation is used to discover the URN associated with a particular URL.
  292.  
  293. "the URN"? So this relationship is expected to be functional?
  294. I think that's fine, as long as it's a conscious decision.
  295.  
  296. Something that I think should be specified: is L2N expected
  297. to be the inverse of N2L?
  298.  
  299. > 4.8 L2Ls (URL to URLs)
  300. > This operation is used to discover URLs that are considered equal to each
  301. > other.
  302.  
  303. This one is clearly supposed to be an equivalence relation.
  304. If N2N is also an equivalence relation, then I don't understand
  305. the distiction.
  306.  
  307. As I suggested above, I think the essentail ones are:
  308.     EQV : equivalence in any sense, as long as it's
  309.         reflexive, symmetric, and transitive. This can be
  310.         used for alias detection etc.
  311.     G2S/S2G: generic-to-specific and the converse.
  312.         transitive (and antisymmetric, I think).
  313.     P2H/H2P: part-to-whole, whole-to-part. transitive
  314.         and antisymmetric.
  315.         This sort
  316.         of metadata is repeatedly requested by
  317.         search service providers who want to
  318.         know when texi2html-chapter2 and
  319.         texi2html-chapter3 are children of
  320.         the same root.
  321.  
  322. Each of these is a special case of:
  323.     Given a URI S and a URI T, return a set of URIs D[i]
  324.     such that there's a link from S to D[i] of type T
  325.     for each i.
  326.  
  327. These special cases are worth making exception,
  328. (since full URLs for N2L and EQV would probably waste a lot of
  329. bytes in DNS!) I suggest another operation for the general
  330. case:
  331.  
  332.     S2D(URI S, URI T) -> set of URIs D[i]
  333.  
  334.  
  335. > 4.9 L2C (URL to URC):
  336. > This operation is used to retrieve the URC for a given URL
  337.  
  338. How is this distinct from N2C?
  339.  
  340. > 4.10 I2I (URI to URI):
  341. > This operation is used to map any arbitrary URI to any other arbitrary URI.
  342.  
  343. Again, I don't see the reason for more than one equivalence
  344. relation.
  345.  
  346. > 4.11 N2I (URI to URI):
  347. > This operation is used to map a URN to any other arbitary URI.
  348.  
  349. And again.
  350.  
  351. > 4.11 I=I (Is URI equal to URI):
  352. > This operation is used to determine whether two given URIs are considered to
  353. > be equal by the server being asked the question.
  354.  
  355. And again.
  356.  
  357.  
  358. Now... on to the specs that depend on this one.
  359.  
  360. -- 
  361. Dan Connolly, W3C Architecture Domain Lead
  362. <connolly@w3.org> +1 512 310-2971
  363. http://www.w3.org/People/Connolly/
  364. PGP:EDF8 A8E4 F3BB 0F3C FD1B 7BE0 716C FF21